#pragma once

class Module;

class Application
{
private:
	int windowWidth;
	int windowHeight;
	bool fullscreen;
	std::string title;
	bool running;

	std::map<std::string, Module*> modules;
public:
	Application();
	Application(int width, int height, bool fullscreen);
	~Application(void);
public:
	int run();
private:
	void init();
	void terminate();
	void loop();
	void exit();

public:
	int getWidth();
	void setWidth(int width);

	int getHeight();
	void setHeight(int height);

	bool getFullScreen();
	void setFullScreen(bool fullscreen);

	std::string getTitle();	
	void setTitle(std::string newTitle);
};

